from rest_framework import permissions


class IsOwnerReadOnly(permissions.BasePermission):
    """
    自定义权限：只有对象的所有者可以增删改查
    """

    def has_object_permission(self, request, view, obj):  # 重写BasePermission的方法
        """
        所有的request请求都有读权限，因此一律允许GET/HEAD/OPTIONS方法
        如果用户是自己，可以修改
        :param request:
        :param view:
        :param obj:
        :return: bool
        """
        if request.method in permissions.SAFE_METHODS:
            return True
        # 对象的所有者才有写权限
        return obj.teacher == request.user
